package com.nbufe.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nbufe.common.core.domain.R;
import com.nbufe.domain.ResponseResult;
import com.nbufe.domain.dto.ModifyFossiFuelInfoDto;
import com.nbufe.domain.entity.FossilFuel;
import com.nbufe.domain.form.QueryFossiFuelByIdForm;
import com.nbufe.domain.form.QueryFossiFuelForm;
import com.nbufe.domain.vo.*;

import java.util.List;


/**
 * (FossilFuel)表服务接口
 *
 * @author makejava
 * @since 2023-04-01 10:10:33
 */
public interface FossilFuelService extends IService<FossilFuel> {

    /**
     * 计算化石燃料的活动水平
     * @param activityLevelVo
     * @return
     */
    R calcActivityLevelByMonth(ActivityLevelVo activityLevelVo);

    R addFossiFuelConsumeInfo(AddFossiFuelConsumeVo vo);

    R calcEmissionFactoryByMonth(CalcEmissionFactorVo vo);

    R calcCo2EmissionByMonth(CalCO2EmissionVO vo);

    Double getTargetFossiFuelCarbonEmissionYear(GetFossiFuelCarbonEmissionYearVo vo);

    Double getTotalCarbonEmissionByYear(Integer year);

    Double getTotalCarbonEmissionByMonth(YearMonthVo vo);

    R pageList(QueryFossiFuelForm form);

    List<Integer> listYears();

    ResponseResult deleteFossiFuel(List<Integer> fossiIds);

    QueryFossiFuelByIdForm queryFossiFuelInfoById(Integer id);

    ResponseResult modifyFossiFuelInfo(ModifyFossiFuelInfoDto modifyFossiFuelInfoDto);
}

